perm filename MLISP.DOC[NET,KMC] blob sn#191163 filedate 1975-08-14 generic text, type T, neo UTF8
THIS FILE IS MLISP.DOC[213,203] AT UCLA
SPECIFIC COMMENTS ON PUTTING MLISP TOGETHER ON CCBS

TRY THIS ALLOCATION:
 R LISP 42
 Y2000 14000    (CR)
DO2 HAS THE CURRENT FILE.   AFTER STARTING LISP, (DSKIN DO2) THEN (PXPX)
  THEN (INIT1)  SCAN$ (INIT2)  AS STATED BELOW.

WHEN LISP READS IN UTILS, IT HANGS UP WHEN IT GETS TO FORM FEED.
  TO GET IT GOING, DO (CTRL)L  .  

DOING SSAVE SAVES THE UPPER SEGMENT UNPROTECTED, 
  SO THE DO FILE "DO" SHOULD WORK RIGHT.

PPRINT HAS LISP OF PPRINT.MLI AND MACRO1.MLI.

NOW IF WE WANT TO SPEED THE TWO-PASS PROCESS UP:
  (IT IS CURRENTLY SLOW BECAUSE THE MACROS ARE EXPANDED
  WHILE PRETTY-PRINTING, MAKING OUTPUT FROM MLISP
  AND INPUT TO COMPL OVERBEARING)
THE TRICK IS AS FOLLOWS:

  LOAD INTO COMPLR: (MACROS.LSP) AND (PPRINT.LAP)

OR THE PART OF PPRINT THAT CAME FROM MACRO1.MLI
 THEN TAKE MACROS.LSP OUT OF MLISP.

The following are the steps necessary to create an MLISP system under
UCI LISP.


(1) Compile the files MLISP, RUNFN1, RUNFN2, PPRINT
    using the standard UCI LISP compiler.


(2) Assemble the machine language scanner (c.f. the MLISP manual)
    using the standard DEC MACRO assembler; e.g.
	COMPILE SCAN.MAC <cr>


(3) Load the resulting LAP and REL files by:
	R ILISP 22 <cr>			Note: <cr> = carriage return
	Y1000_4000___<cr>			_  = space
	(EXIT) <cr>
	SSAVE MLISP <cr>

	RUN MLISP <cr>
	(HGHCOR 6000) (SETSYS DSK: MLISP) <cr>
	(SETQ SAVORG BPORG) (SETQ BPORG (HGHORG NIL)) <cr>
	(SETQ SAVEND BPEND) (SETQ BPEND (HGHEND)) <cr>
	(DSKIN (MLISP.LAP) (RUNFN1.LAP) (MACROS.LSP)(PPRINT.LAP) MINIT UTILS) <cr>
	(HGHORG BPORG) (SETQ BPORG SAVORG) (SETQ BPEND SAVEND) <cr>
	(INIT1) <cr>
	DSK:SCAN <altmode>
	(INIT2) <cr>
	(EXIT) <cr>
	SSAVE MLISP <cr>


(4) Create a file (UTILS) of MLISP runtime functions containg the files
    RUNFN2.LAP and SETQS; e.g.
	COPY UTILS ← RUNFN2.LAP,SETQS <cr>


If the machine language scanner cannot be used (for any reason), the
LISP version -- three times slower -- may have to be used.  See the
MLISP manual for instructions.

All files with extension MLI are MLISP versions of the corresponding
LISP files; e.g. RUNFN1.MLI is the MLISP version of the LISP file RUNFN1.
Since they are in the MLISP notation, these MLI files make the translator
easier to understand.  They also provide examples of MLISP programs.

The file MEXPR.MLI is the reverse LISP → MLISP translator.

The files in the MLISP system:
	LISP file	MLISP file(s)

	MLISP		MLISP.MLI
	RUNFN1		RUNFN1.MLI
	RUNFN2		RUNFN2.MLI
	PPRINT		PPRINT.MLI, MACRO1.MLI
     MACROS.LSP       MACROS.MLI
	MINIT
	SETQS
			MEXPR.MLI
	SCAN.MAC			(machine language scanner -- MACRO file)
	SCAN		SCAN.MLI	(LISP scanner, if necessary)
	MEMO				(this file)